#ifndef FLUX_GRAPH
#define FLUX_GRAPH

#include "Graph.h"
class FluxGraph : public Graph {
private :
	bool **tagged_edges;

public :
	FluxGraph(const Graph *,vector<int>);
	~FluxGraph() {
		if (tagged_edges) {
			for (int i = 0; i < getNbVertex(); ++i) {
				delete []tagged_edges[i];
			}
			delete []tagged_edges;
		}
	}
	bool isTagged(int, int) const;
	void tag(int, int);
	void untag(int, int);
	void invertEdge(int i, int j);

	void addEdge(int, int);
	void delEdge(int, int);

	void showTags();

	string toString();

	int S, T;
};

#endif
